using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace TK.Event
{
    /// <summary>
    /// 造成伤害之前事件
    /// </summary>
    /// <returns></returns>
    public delegate bool BeforeApplyDamageEvent(UnitDamageEventData e);

    /// <summary>
    /// 造成伤害事件
    /// </summary>
    /// <param name="e"></param>
    /// <returns></returns>
    public delegate bool ApplyDamageEvent(UnitDamageEventData e);

    /// <summary>
    /// 造成伤害结束事件
    /// </summary>
    /// <param name="e"></param>
    public delegate void ApplyDamageEndEvent(UnitDamageEventData e);

    /// <summary>
    /// 受到伤害事件
    /// </summary>
    /// <param name="e"></param>
    public delegate void TakeDamageEvent(UnitDamageEventData e);

    /// <summary>
    ///  接受治疗事件
    /// </summary>
    /// <param name="e"></param>
    public delegate void HealUnitEvent(UnitHealEventData e);

    /// <summary>
    /// 闪避攻击事件
    /// </summary>
    /// <param name="e"></param>
    /// <returns></returns>
    public delegate bool MissEvent(UnitAttackEventData e);

    /// <summary>
    /// 攻击暴击事件
    /// </summary>
    /// <param name="e"></param>
    /// <returns></returns>
    public delegate bool AttackCriticalEvent(UnitAttackEventData e);

    /// <summary>
    /// 单位死亡事件
    /// </summary>
    /// <param name=""></param>
    public delegate void UnitDieEvent(UnitEventData e);
}
